// 输入整数 n (2<=n<=20)，输出构成 n^3 的最长连续奇数序列的最小奇数与长度
#include <stdio.h>

int main(void)
{
    int n;
    if (scanf("%d", &n) != 1) {
        return 0;
    }
    if (n < 2 || n > 20) {
        // 题目未定义越界行为：为避免误判，不输出
        return 0;
    }

    long long S = (long long)n * n * n; // n^3
    long long best_m = 0;
    long long best_a = 0;

    // 寻找最大 m（长度），使得存在奇数起点 a>0 满足：S = m * (a + m - 1)
    // 等价于 a = S/m - m + 1 为正奇数，且 m | S。
    for (long long m = S; m >= 1; --m) {
        if (S % m != 0) continue;
        long long T = S / m; // T = S/m
        // a 为奇数的充要条件：T 与 m 同奇偶（因为 a = T - m + 1）
        if ((T & 1LL) != (m & 1LL)) continue;
        long long a = T - m + 1;
        if (a <= 0) continue;
        best_m = m;
        best_a = a;
        break; // 从大到小，首次命中即为最长
    }

    // 输出最小奇数与序列长度（同一行，空格分隔）
    printf("%lld %lld", best_a, best_m);
    return 0;
}